/**
 * Copyright (C) 2008-2009 Cristian Olaru <colaru@gmail.com>
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *         http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.integrationpath.mengine.webapp.util;

public interface EngineConstants {

	int NUMBER_OF_WORDS_FOR_TITLE = 3;
	int NUMBER_OF_WORDS_FOR_CONTENT = 9;

	int NUMBER_OF_CHARACTERS_FOR_TITLE = 35;
	int NUMBER_OF_CHARACTERS_FOR_CONTENT = 60;
	int NUMBER_OF_CHARACTERS_FOR_FEATURE_CONTENT = 200;
	int NUMBER_OF_CHARACTERS_FOR_FEATURE_TITLE = 30;
	
	int RICH_MEDIA=1;
	int AUDIO_MEDIA=2;
	int IMAGE_MEDIA=3;
	int VIDEO_MEDIA=4;
	int ALL_MEDIA=5;
	
	byte ARTICLE_DISABLED=0;
	byte ARTICLE_ENABLED=1;
	
	byte ARTICLE_UNFEATURED=0;
	byte ARTICLE_FEATURED=1;
	
	Byte COMMENT_STATUS_DISABLED = 0;
	Byte COMMENT_STATUS_ENABLED = 1;
	
	String COMMENT_CONTENT_CONVENTION = "content:";
	
//~ Static fields/initializers =============================================

    /**
     * The name of the ResourceBundle used in this application
     */
    public static final String BUNDLE_KEY = "ApplicationResources";

    /**
     * The name of the ConfigurationBundle used in this application
     */
    public static final String CONFIG_KEY = "ConfigurationResources";
    
    /**
     * File separator from System properties
     */
    public static final String FILE_SEP = System.getProperty("file.separator");

    /**
     * User home from System properties
     */
    public static final String USER_HOME = System.getProperty("user.home") + FILE_SEP;

    /**
     * The name of the configuration hashmap stored in application scope.
     */
    public static final String CONFIG = "appConfig";

    /**
     * Session scope attribute that holds the locale set by the user. By setting this key
     * to the same one that Struts uses, we get synchronization in Struts w/o having
     * to do extra work or have two session-level variables.
     */
    public static final String PREFERRED_LOCALE_KEY = "org.apache.struts2.action.LOCALE";

    /**
     * The request scope attribute under which an editable user form is stored
     */
    public static final String USER_KEY = "userForm";

    /**
     * The request scope attribute that holds the user list
     */
    public static final String USER_LIST = "userList";

    /**
     * The request scope attribute for indicating a newly-registered user
     */
    public static final String REGISTERED = "registered";

    /**
     * The name of the Administrator role, as specified in web.xml
     */
    public static final String ADMIN_ROLE = "ROLE_ADMIN";

    /**
     * The name of the User role, as specified in web.xml
     */
    public static final String USER_ROLE = "ROLE_USER";

    /**
     * The name of the user's role list, a request-scoped attribute
     * when adding/editing a user.
     */
    public static final String USER_ROLES = "userRoles";

    /**
     * The name of the available roles list, a request-scoped attribute
     * when adding/editing a user.
     */
    public static final String AVAILABLE_ROLES = "availableRoles";

    /**
     * The name of the CSS Theme setting.
     */
    public static final String CSS_THEME = "csstheme";
    
    /**
     * The encryption algorithm key to be used for passwords
     */
    public static final String ENC_ALGORITHM = "SHA";

    /**
     * A flag to indicate if passwords should be encrypted
     */
    public static final String ENCRYPT_PASSWORD = "encryptPassword";

	
}
